package com.ruoyi.system.service.impl;

import java.util.ArrayList;
import java.util.List;

import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.system.mapper.TenderExpertexpertGroupMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.TenderItemMapper;
import com.ruoyi.system.domain.TenderItem;
import com.ruoyi.system.service.ITenderItemService;
import com.ruoyi.common.core.text.Convert;

import static com.ruoyi.common.utils.ShiroUtils.getLoginName;

/**
 * 项目管理Service业务层处理
 *
 * @author ruoyi
 * @date 2025-05-12
 */
@Service
public class TenderItemServiceImpl implements ITenderItemService {
    @Autowired
    private TenderItemMapper tenderItemMapper;
    @Autowired
    private TenderExpertexpertGroupMapper tenderExpertexpertGroupMapper;

    /**
     * 查询项目管理
     *
     * @param itemId 项目管理主键
     * @return 项目管理
     */
    @Override
    public TenderItem selectTenderItemByItemId(Long itemId) {
        return tenderItemMapper.selectTenderItemByItemId(itemId);
    }

    /**
     * 查询项目管理列表
     *
     * @param tenderItem 项目管理
     * @return 项目管理
     */
    @Override
    public List<TenderItem> selectTenderItemList(TenderItem tenderItem) {
        return tenderItemMapper.selectTenderItemList(tenderItem);
    }
    /**
     * 查询项目管理列表--根据用户id
     *
     * @param tenderItem 项目管理
     * @return 项目管理
     */
    @Override
    public List<TenderItem> selectTenderItemList1(TenderItem tenderItem) {
        //获取到登录用户id
        Long userId = ShiroUtils.getUserId();
        //找到用户id属于哪个用户组--用户组id查询
        List<Long> groupListIds = tenderExpertexpertGroupMapper.getData1(userId);
        List<TenderItem> tenderItems = tenderItemMapper.selectTenderItemList(tenderItem);
        ArrayList<TenderItem> resList = new ArrayList<>();
        for (TenderItem vo : tenderItems) {
            for (Long groupId : groupListIds) {
                if(vo.getGroupId() == groupId){
                    resList.add(vo);
                }
            }
        }
        return resList;
    }

    /**
     * 新增项目管理
     *
     * @param tenderItem 项目管理
     * @return 结果
     */
    @Override
    public int insertTenderItem(TenderItem tenderItem) {
        tenderItem.setCreatedBy(getLoginName());
        return tenderItemMapper.insertTenderItem(tenderItem);
    }

    /**
     * 修改项目管理
     *
     * @param tenderItem 项目管理
     * @return 结果
     */
    @Override
    public int updateTenderItem(TenderItem tenderItem) {
        tenderItem.setUpdatedBy(getLoginName());
        return tenderItemMapper.updateTenderItem(tenderItem);
    }

    /**
     * 批量删除项目管理
     *
     * @param itemIds 需要删除的项目管理主键
     * @return 结果
     */
    @Override
    public int deleteTenderItemByItemIds(String itemIds) {
        return tenderItemMapper.deleteTenderItemByItemIds(Convert.toStrArray(itemIds));
    }

    /**
     * 删除项目管理信息
     *
     * @param itemId 项目管理主键
     * @return 结果
     */
    @Override
    public int deleteTenderItemByItemId(Long itemId) {
        return tenderItemMapper.deleteTenderItemByItemId(itemId);
    }
}
